/*
 *  menuBtn->move(25+i%4*70,130+i/4*70);//这个思想漂亮
 *
创建选择关卡场景。
点击开始按钮后 延时进入到选择关卡场景+

配置选择关卡场景(图标、标题、大小)。
设置背景图片、 设置标题图片。

创建返回按钮。
选择关卡的返回按钮特效制作+

点击后切换另- -个图片
重写 void mousePressEvente'
重写 vold mouseReleaseEvent+
开始场景 与选择关卡场景的切换+
点击选择关 卡场景的返回按钮,发送一个自定义信号。
在 主场景中监听这个信号，并且当触发信号后，重新显示主场景，隐藏掉选择关卡的场景。
选择关卡中的 按钮创建+
利用一个 for循环将所有按钮布置到场景中。

在按钮.上面设置一个9Label显示关卡数+
 QLabel 设置大小、显示文字、对齐方式、鼠标穿透。

给每个按钮设置点击事件

 */

#include "chooselevelscene.h"
#include<QMenuBar>
#include"mypushbutton.h"
#include<QDebug>
#include"playscene.h"
#include<QLabel>
#include<QTimer>
#include<QSound>
ChooseLevelScene::ChooseLevelScene(QWidget *parent) : QMainWindow(parent)
{
    //设置选择关卡场景
    this->setFixedSize(320,580);

    //设置图标
    this->setWindowIcon(QIcon(":/res/Coin0001.png"));

    //设置标题
    this->setWindowTitle("选择关卡场景"); 
    //创建菜单栏
    QMenuBar *bar=menuBar();
    setMenuBar(bar);

    //创建开始菜单
    QMenu *startMenu=bar->addMenu("开始");

    QAction *quitAction=startMenu->addAction(tr("退出(&q)"));
    quitAction->setShortcut(QKeySequence("Ctrl+q"));
    //图标
    quitAction->setIcon(QIcon(":/res/Coin0001.png"));

    //点击退出实现退出游戏
    connect(quitAction,&QAction::triggered,[=](){
        this->close();
    });


     QSound *chooseSound=new QSound(":/res/TapButtonSound.wav",this);


    //返回按钮
    MyPushButton *backBtn=new MyPushButton(":/res/BackButton.png",":/res/BackButtonSelected.png");
    backBtn->setParent(this);
    backBtn->move(this->width()-backBtn->width(),this->height()-backBtn->height());

    //点击返回
    connect(backBtn,&QPushButton::clicked,[=](){
        chooseSound->play();
       // qDebug()<<"点击了返回";
        //主场景监听ChooseLevelScene的返回按键
        emit chooseSceneBack();//发送点击了返回的按钮
    });





    //创建选择关卡按钮
    for(int i=0;i<20;i++)//用一层循环打印 矩阵
    {
        MyPushButton *menuBtn=new MyPushButton(":/res/LevelIcon.png");

        menuBtn->setParent(this);
        menuBtn->move(25+i%4*70,130+i/4*70);//这个思想漂亮
//        //设置文字  效果不好 用label
//        menuBtn->setText(QString::number(i+1));


        //音效

        connect(menuBtn,&MyPushButton::clicked,[=](){
            chooseSound->play();
            QString str=QString("您选择的是得%1关").arg(i+1);
            qDebug()<<str;


            //进入到游戏场景
            this->hide();
            play=new PlayScene(i+1);//创建游戏场景
            //设置游戏场景的初始位置
            play->setGeometry(this->geometry());
            play->show();//显示游戏场景


            //监听信号  返回按键
            connect(play,&PlayScene::chooseSceneBack,[=](){
                this->setGeometry(play->geometry());
                this->show();
                delete play;
                play=NULL;

            });

        });
        QLabel *label=new QLabel;
        label->setParent(this);
        label->setFixedSize(menuBtn->width(),menuBtn->height());
        label->move(25+i%4*70,130+i/4*70);
        label->setText(QString::number(i+1));
        //设置label 上的文字对齐方式水平居中和垂直居中

        label->setAlignment(Qt::AlignHCenter|Qt::AlignVCenter);
        //设置让鼠标进行穿透  51号属性
        label->setAttribute(Qt::WA_TransparentForMouseEvents);
    }

}
void ChooseLevelScene::paintEvent(QPaintEvent*)
{
    QPainter painter(this);
    QPixmap pix;
    pix.load(":/res/OtherSceneBg.png");
    painter.drawPixmap(0,0,this->width(),this->height(),pix);

    //添加标题
    pix.load(":/res/Title.png");
    painter.drawPixmap((this->width()-pix.width())*0.5,30,pix.width(),pix.height(),pix);


}
